home *** CD-ROM | disk | FTP | other *** search
/ PC/CD Gamer UK 129 / CD Gamer Issue 129 (December 2003) (Disc 1).ISO / Addons / Vietcong Map editor / max plugins / scripts / pteroTools / _ladderRollOut.msp < prev    next >
Encoding:
Text File  |  2003-09-12  |  3.9 KB  |  93 lines

  1. rollout LadderRollOut "Ladder" rolledUp:true (
  2.     local _name
  3.     local _RollOut
  4.  
  5.     ---------------------------------------------------------------
  6.     -- init GUI
  7.     ---------------------------------------------------------------
  8.     include "$scripts\\pteroTools\\_propGroupUI.ms"
  9.         checkbox    cbxLadder    "Is Ladder"
  10.  
  11.      ---------------------------------------------------------------
  12.     -- Init RollOut
  13.     ---------------------------------------------------------------
  14.      fn fnKeyNames    = #( _name )
  15.      fn fnKeyUI        = #( #( cbxLadder ) )
  16.      fn fnKeyDef        = #( #( 0 ) )
  17.     fn fnName        = "Ladder"
  18.     fn fnRollOut    = LadderRollOut
  19.     fn fnInitRollOut = (
  20.         local _name        = fnName()
  21.         local _RollOut    = fnRollOut()
  22.         fnAppendRollOut _RollOut _name
  23.     )
  24.      
  25.      ---------------------------------------------------------------
  26.     -- fnApply()
  27.     ---------------------------------------------------------------
  28.     fn fnApply obj keyIDX read write del acq acqObj def sav = (
  29.         local keyNames    = fnKeyNames()
  30.         local keyUI        = fnKeyUI()
  31.         local keyDef    = fnKeyDef()
  32.         local keyArray    = #()
  33.  
  34.         if del do fnDeleteProp obj keyNames[keyIDX]                                                                ---- DELETE
  35.             
  36.         if sav do                                                                                                 ---- SAVE DEFAULT
  37.             try (
  38.                 if keyIDX == 1 do keyDef[keyIDX][1] = if keyUI[keyIDX][1].checked then 1 else 0
  39.                 fnSetDefs ( keyNames[keyIDX] as string ) ( keyDef[keyIDX] as string )
  40.                 return true
  41.             ) catch ( print ( "Error: " + _name + ".fnApply() - save" ); return false )
  42.  
  43.         keyArray = if acq then fnReadProp acqObj keyNames[keyIDX] else fnReadProp obj keyNames[keyIDX]            ---- ACQUIRE
  44.         
  45.         if read or acq or del or def do (                                                                        ---- READ
  46.             if ( keyArray[_firstValue] == "" ) or ( keyArray[_firstValue] as string == "undefined" ) or def then 
  47.                 try (
  48.                     if def then keyDef[keyIDX] = fnGetDefs keyNames[keyIDX]
  49.                     if keyIDX == 1 do keyUI[keyIDX][1].checked = if keyDef[keyIDX][1] == 1 then true else false
  50.                 ) catch ( print ( "Error: " + _name + ".fnApply() - read - default" ); return false )
  51.             else
  52.                 try (
  53.                     if keyIDX == 1 do keyUI[keyIDX][1].checked = if keyArray[_firstValue] as integer == 1 then true else false
  54.                 ) catch ( print ( "Error: " + _name + ".fnApply() - read - properties" ); return false )
  55.  
  56.             if read or del do return true
  57.         )
  58.  
  59.         if write do                                                                                                ---- WRITE
  60.             try (
  61.                 keyArray[_keyName] = keyNames[keyIDX]
  62.                 if keyIDX == 1 do if keyUI[keyIDX][1].checked == false        then del = true else keyArray[_firstValue] = "1"
  63.                 if del then fnDeleteProp obj keyNames[keyIDX] else fnWriteProp obj keyArray
  64.                 return true
  65.             ) catch ( print ( "Error: " + _name + ".fnApply() - write" ); return false )
  66.     )    
  67.  
  68.      ---------------------------------------------------------------
  69.     -- fnUpdate()
  70.     ---------------------------------------------------------------
  71.     fn fnUpdate keyIDX:1 read:false write:false del:false acq:false acqObj:undefined def:false sav:false = (
  72.         if not write do write = btnAuto.checked
  73.         for obj in selection do fnApply obj keyIDX read write del acq acqObj def sav
  74.     )
  75.  
  76.     ---------------------------------------------------------------
  77.     -- Event Handler
  78.     ---------------------------------------------------------------
  79.     on cbxLadder        changed state    do ( fnUpdate keyIDX:1; fnGetPropsToShow(); fnPrintLabel() )
  80.     on btnAcq            changed state    do ( fnAcquire _RollOut; fnGetPropsToShow(); fnPrintLabel() )
  81.     on btnSet            pressed            do ( fnUpdate keyIDX:1 write:true; fnGetPropsToShow(); fnPrintLabel() )
  82.     on btnDef            pressed            do ( fnUpdate keyIDX:1 def:true; fnGetPropsToShow(); fnPrintLabel() )
  83.     on btnSav            pressed            do ( fnUpdate keyIDX:1 sav:true; fnGetPropsToShow(); fnPrintLabel() )
  84.     on btnDel            pressed            do ( fnUpdate keyIDX:1 del:true; fnGetPropsToShow(); fnPrintLabel() )
  85.     on LadderRollOut    open            do (
  86.         _RollOut    = fnRollOut()
  87.         _name        = fnName()
  88.         fnOpenRollOut _RollOut
  89.     )
  90.     on LadderRollOut    close            do fnCloseRollOut _RollOut
  91.     
  92. )
  93.